My journey
I started by learning how a web page is structured. HTML came first, then CSS, then small JavaScript interactions. I now use PHP and MySQL when a page has to save a message and show it again.
// about.md
I am Mahir Faysal, a student web developer in Bangladesh. I build websites and web apps with HTML, CSS, JavaScript, PHP, MySQL, Next.js and TypeScript, and I take on business projects.
I started by learning how a web page is structured. HTML came first, then CSS, then small JavaScript interactions. I now use PHP and MySQL when a page has to save a message and show it again.
I like clean interfaces, readable code, and pages that do a real job: a business site, a dashboard, a form, a tool people open every day.
I want to keep shipping useful websites and take on projects I can build carefully. If you need a site or a web tool, I can do it.
I take websites, landing pages, dashboards, and small web apps. If the work needs a form, a database, or a layout that works on a phone, I can build that too.
// 01 · work
I take websites, landing pages, dashboards, and small web apps. If the work needs a form, a database, or a layout that works on a phone, I can build that too.
A business site, an admin page, a form that stores a message, a dashboard, or a redesign of something that already exists: that is the work. Tell me what the page has to do and I will build it.
When someone asks what I do, the answer is: I am a student web developer in Bangladesh. I make websites and web tools, and I am available for projects.
// 02 · start
I started by learning how a web page is structured. HTML came first, then CSS, then small JavaScript interactions. I now use PHP and MySQL when a page has to save a message and show it again. Each of those steps was a real file on disk, not a course badge. HTML taught me that a page is a tree. CSS taught me that the tree can still look wrong. JavaScript taught me that a click can change the tree without a reload.
PHP came later, when I wanted the page to remember something. A contact message that disappears when you refresh is only half a form. MySQL is the other half: a table, a prepared statement, and a row I can open again from an admin screen.
I still write the simple version first. A heading, a paragraph, a link. Then spacing. Then a second page. Then the thing that fails on a narrow screen. That order is slower, and it is the reason the writing on this site sits in a column you can actually read.
# learning order 1 html structure 2 css layout 3 js small interactions 4 php forms and pages 5 mysql save and read rows
// 03 · practice
A useful session has one target. “Make the whole site better” is too big. “Make the hero read from the top” is a real task. “Turn a business brief into a page people can use” is a real task.
A stylesheet, a PHP view, or a small script. I try not to change five things at once, because then I cannot tell which change fixed the page.
Desktop width and a phone width. If a word spills out of the column, the page is not done, even if the code looks fine in the editor.
GitHub is the place I keep the version I am willing to show. A half-broken experiment stays local until it can be explained on a project page.
// 04 · interests
I like clean interfaces, readable code, and pages that do a real job: a business site, a dashboard, a form, a tool people open every day.
Clean interface, for me, means the next action is obvious. A navbar that says where you are. A card that says what the project is. A footer that does not hide the links. I like the coder look — mono indexes, a terminal, dark glass — when it still reads like a document. Decoration that pushes the sentence down the page is not a design I want to keep.
A planner that stores tasks, a dashboard a business can open every day, a contact form that keeps the message: those are useful pages. If it helps the work get done, it belongs on this site.
// 05 · goals
I want to keep shipping useful websites and take on projects I can build carefully. If you need a site or a web tool, I can do it.
The next builds are concrete. PHP that is easy to follow. Forms that stay safe: prepared statements, a token, and a limit on how often a message can be sent. Pages a business can actually use, on a desktop and on a phone.
That is the work. I am a web developer, and a new project can start from the contact page.
// 06 · limits
The certifications page stays empty until a document is real. The About page is long because the work, the stack, and the way a project starts all need room.
// 07 · faq
Mahir Faysal is a student web developer in Bangladesh. He builds websites and web apps with HTML, CSS, JavaScript, PHP, Next.js and TypeScript, publishes the code on GitHub as mfaysal-dev, and takes on business projects.
Yes. Mahir Faysal is open for work and takes websites, landing pages, dashboards, and small web apps, including work that needs a form, a database, or a layout that works on a phone. A project can start from the contact page on mfaysal.com.
For websites he uses HTML, CSS, JavaScript, PHP, and MySQL. For web apps he uses Next.js, React, TypeScript, and Tailwind CSS, with libraries such as Zustand, Recharts, and Zod, and the Gemini API for AI features.
His published projects include Quizwright, a Gemini AI quiz generator; StudyPilot, an offline study planner; Hisab, a personal finance tracker; Ritual, a habit tracker; Freelane, a freelancer CRM; and Kinetica, a browser design and animation editor. The code for each one is on GitHub.
Use the contact form on mfaysal.com. Say who you are and what you need built, such as a business site, a tool, a fix, or a full site. Every message is saved and read.
// 08 · next
Skills explains the labels on every language. Projects lists the web apps I have built and published, each with a live demo or source link. The blog is notes, with a warning on anything that is only there to test the layout. If a sentence on this page is wrong, the contact form is the place to say so.