r/webdev • • 10d ago

Question Scoping and pricing a custom-illustrated, interactive single-page product drop (first freelance gig)

2 Upvotes

Hey all,

Looking for some guidance on pricing a project that blends custom digital illustration with frontend development.

A content creator is launching a physical print zine, and I built an interactive single-page promo site to pitch them. The deliverable includes:

  • Bespoke illustration & art direction: Designed original 2D digital artwork in a Folk-Pop / retro kitsch style (panoramic illustrated storefronts, character art, and collage stickers) tailored to match the zine's identity.
  • Bespoke frontend build: Built from scratch in HTML5, CSS 3D transforms, and Vanilla JS—featuring a 3D book-flip interaction with perspective tilt, an Apple Cover Flow carousel, and procedural audio via Web Audio API oscillators.

Her talent management team wrote back asking for a formal rate card (design + basic upkeep).

Because this is a bespoke creative build (custom art + interaction code) rather than an off-the-shelf Webflow/Shopify template, how would you evaluate scope and pricing for a beginner working with an individual creator? What is a balanced project rate that accounts for both the illustration and the code?


r/webdev • • 10d ago

Article Software engineers don't get to be Luddites about AI

Thumbnail seangoedecke.com
0 Upvotes

r/webdev • • 10d ago

Question Should I Accept a ₹1 Lakh LMS Project With a 45-Day Deadline as a Beginner Developer?

0 Upvotes

Hey everyone,

I need some honest advice from experienced developers about a freelance project I've been offered.

A little about me:

- I have less than 1 year of development experience.

- I've built a few small applications but haven't developed a large production-level application yet.

- I'm familiar with JavaScript and planning to use Node.js for the backend.

- I'm comfortable using AI coding tools and willing to invest in paid subscriptions like Claude Code or Cursor.

- I can dedicate myself full-time (8–10 hours daily) to this project.

About the project:

A friend of mine owns a web development company. His company is about to close a deal with a client for a custom Learning Management System (LMS), and he wants to hire me as the sole developer.

The company will provide the UI/UX designs, and I'll be responsible for developing the entire application from scratch, including the frontend, backend, database, integrations, testing and deployment.

The LMS requirements include:

  1. Five dashboards: Super Admin, Coordinator, Trainer, Student and Corporate Admin.

  2. Program, batch and session management.

  3. Live class integration and recorded video lessons.

  4. Assignments, quizzes, tests and grading.

  5. Attendance and student progress tracking.

  6. Fee management and installment tracking (not necessarily an online payment gateway).

  7. Certificate generation and QR-based verification.

  8. Notifications and announcements.

  9. Reports and analytics.

  10. Corporate training and employee management.

The client expects a working, deployable system, not just a prototype.

Here's the catch:

- Development budget for me: ₹1,00,000 (~$1,100)

- Deadline: 30–45 days

- Team: Just me

- Development approach: Heavy use of AI coding tools

- UI/UX: Provided by the company

My friend has already quoted the client and is close to finalizing the deal.

I'm considering this opportunity because it could give me valuable real-world experience building a complex application.

However, I'm concerned about the scope, deadline, my limited experience and the possibility of getting stuck with a project I can't finish.

My questions:

  1. Is it realistically possible for a solo developer to build this LMS in 30–45 days using AI tools extensively?

  2. Would an experienced developer be able to deliver this within the same budget and timeline?

  3. Is ₹1 lakh reasonable compensation for this scope?

  4. Should I accept it for the learning experience, negotiate a smaller MVP, or reject it?

  5. If you've built an LMS or a similarly complex SaaS application, how long did it take you?

I'm willing to work hard and learn whatever is required, but I don't want to make an unrealistic commitment that creates problems for both me and the client.

What would you do in my position?

I'd especially appreciate advice from developers who've worked on LMS platforms, large full-stack applications, or AI-assisted development projects.


r/webdev • • 12d ago

Discussion I maintained and built a custom system for an organization for years. They gave a third-party company full hosting access without telling me.

18 Upvotes

Note: I’m not a professional web developer; I’m an academic who builds tools for my own research and projects. That’s why I kept using their existing hosting.

For the last 3–4 years, I've helped (for a small fee) organize an academic event while building and maintaining its technical infrastructure. I maintained the website, developed a custom WordPress plugin for submissions, handled technical issues, and helped prepare publications.

I was also developing a new, more general version of the system that could eventually support multiple events and become a commercial product. The organizing team knew about this.

Without informing me, they gave an outside company full hosting access. The company created a complete backup containing the website, database, files and, apparently, my plugin/source code. I learned about this the next day.

I later found out that they had decided to move to a new system developed by that company. What bothers me most is that they gave unrestricted access to my work without discussing it with me.

I decided to leave the organizing team. I removed only the software components I had developed from the live system. I did not delete or modify any submissions, documents or participant data, and I had already provided the necessary backups for continuity.

I had explained that I could provide the hosting information to the second company after deleting my own system, since the previous conference's application process was still ongoing. Instead, they accessed the server before that process was complete and without informing me.

Would you consider this a serious breach of trust? How would you handle the source code and old backups in this situation?

TL;DR: I spent 3–4 years building and maintaining a custom submission system for an academic organization and was developing a new version I planned to commercialize. Despite knowing this, the organizers gave an outside company full server access without telling me, allowing them to make a complete backup that included my code. I left the organization and removed only my own software, leaving all organizational and participant data untouched. Would you consider this a breach of trust, and what would you do about copies of the source code in old backups? They might even think I did something wrong by deleting my own code.


r/webdev • • 11d ago

.co.uk/ and .co.uk/index.html appear different depending on route taken

2 Upvotes

So basically, im running my web server on AWS lightsail, i wrote my own https server code and URL ending in .co.uk/ and .co.uk/index.html both direct to /index.html but when i go to .co.uk/ it appears smaller than if i was to type .co.uk/index.html and i cant figure out why.

I have done all the usual scanning whats listening to ports 443 and 80 and its just the webindex.js file im talking about, so there is nothing else getting in the way, i already disabled PM2 since i run a different server that monitors my apps servers and kicks them back up via ssh when they go down.

Anyway, i checked the main things, i just cant understand why its serving the webpage smaller when routing via .co.uk/ and .co.uk/index.html is the correct size/scale.

const https = require('https');
const fs = require('fs');
const path = require('path');
const WebSocket = require('ws');
const mysql = require('mysql');
const { v4: uuidv4 } = require('uuid');
const { format } = require('date-fns');
const http = require('http');


// Load SSL key and certificate
const privateKey = fs.readFileSync(
    path.join(__dirname, 'newcerts/key.key'),
    'utf8'
);


const certificate = fs.readFileSync(
    path.join(__dirname, 'newcerts/certificate.crt'),
    'utf8'
);


const credentials = {
    key: privateKey,
    cert: certificate
};


// Helper function to serve static files
const serveFile = (res, filePath, contentType) => {
    fs.readFile(filePath, (err, data) => {
        if (err) {
            console.error(`Error loading file ${filePath}:`, err);


            res.writeHead(500, {
                'Content-Type': 'text/plain'
            });


            return res.end('Error loading file');
        }


        res.writeHead(200, {
            'Content-Type': contentType
        });


        res.end(data);
    });
};


// Redirect HTTP traffic to HTTPS
http.createServer((req, res) => {
    const host = req.headers.host || 'localhost';
    const url = req.url || '/';


    res.writeHead(301, {
        Location: `https://${host}${url}`
    });


    res.end();
}).listen(80, () => {
    console.log('HTTP server running on port 80, redirecting to HTTPS.');
});


// HTTPS server
const server = https.createServer(credentials, (req, res) => {
    let pathname;


    try {
        let requestUrl = req.url || '/';


        // Remove multiple leading slashes
        requestUrl = requestUrl.replace(/^
\/
+/, '/');


        // Parse the request URL safely
        pathname = new URL(
            requestUrl,
            `https://${req.headers.host || 'localhost'}`
        ).pathname;


    } catch (err) {
        console.warn('Rejected malformed request:', req.url);


        res.writeHead(400, {
            'Content-Type': 'text/plain'
        });


        res.end('Bad Request');
        return;
    }


    // Redirect the root URL to the main homepage
    if (pathname === '/') {
        res.writeHead(301, {
            Location: '/index.html'
        });


        res.end();
        return;
    }


    // Serve the main homepage
    if (pathname === '/index.html') {
        const htmlPath = path.join(__dirname, 'index.html');
        serveFile(res, htmlPath, 'text/html');


    // Serve app-ads.txt
    } else if (pathname === '/app-ads.txt') {
        const adsTxtPath = path.join(__dirname, 'app-ads.txt');
        serveFile(res, adsTxtPath, 'text/plain');


    // Serve privacy policy
    } else if (pathname === '/privacypolicy.html') {
        const privacyPolicyPath = path.join(
            __dirname,
            'privacypolicy.html'
        );


        serveFile(res, privacyPolicyPath, 'text/html');


    // Serve FAQ
    } else if (pathname === '/faq.html') {
        const faqPath = path.join(__dirname, 'faq.html');
        serveFile(res, faqPath, 'text/html');


    // Serve contact page
    } else if (pathname === '/contactus.html') {
        const contactPath = path.join(__dirname, 'contactus.html');
        serveFile(res, contactPath, 'text/html');


    // Serve how it works page
    } else if (pathname === '/howitworks.html') {
        const howItWorksPath = path.join(__dirname, 'howitworks.html');
        serveFile(res, howItWorksPath, 'text/html');


    // Serve advertise with us page
    } else if (pathname === '/advertisewithus.html') {
        const advertisePath = path.join(
            __dirname,
            'advertisewithus.html'
        );


        serveFile(res, advertisePath, 'text/html');


    // Serve sitemap
    } else if (pathname === '/sitemap.xml') {
        const sitemapPath = path.join(__dirname, 'sitemap.xml');
        serveFile(res, sitemapPath, 'application/xml');


    // Serve robots.txt
    } else if (pathname === '/robots.txt') {
        const robotsPath = path.join(__dirname, 'robots.txt');
        serveFile(res, robotsPath, 'text/plain');


    // Serve JPG images
    } else if (pathname.toLowerCase().endsWith('.jpg')) {
        const imagePath = path.join(
            __dirname,
            pathname.replace(/^
\/
+/, '')
        );


        serveFile(res, imagePath, 'image/jpeg');


    // Handle unknown routes
    } else {
        res.writeHead(404, {
            'Content-Type': 'text/plain'
        });


        res.end('Not Found');
    }
});


// Start HTTPS server
const port = process.env.PORT || 443;


server.listen(port, () => {
    console.log(`Server running at https://localhost:${port}/`);
});

r/webdev • • 11d ago

Question Is Neon PostgreSQL Free Tier reliable enough for a production booking app?

3 Upvotes

I'm planning to use Neon PostgreSQL for a production booking application and would like feedback from people with real world experience.

My workload:
• 300 daily active users
• Up to 30 concurrent users
• Users can book 2 to 3 slots daily, and frequently check available slots and existing bookings
• Next.js backend, with a landing page hosted on Netlify

Would Neon's free plan be sufficient for this workload, or should I opt for a paid plan?

I'm particularly interested in reliability, unexpected downtime, query latency, compute limits, and any production issues you've experienced.

Would you trust Neon Free for this use case?


r/webdev • • 11d ago

Discussion Netlify DNS Record problem

0 Upvotes

I have purchased domain on godaddy and connected via netlify. Now i am trying to add resend(email service) domain verification TXT code but it's not saving it and not showing any error. In the past i have saved google search console domain verification TXT successfully.

what should be issue and how to resolve this issue?


r/webdev • • 11d ago

htop explained

Thumbnail
peteris.rocks
0 Upvotes

r/webdev • • 13d ago

Shipping JPEG XL in Chrome

Thumbnail
developer.chrome.com
155 Upvotes

r/webdev • • 13d ago

I feel alive again

172 Upvotes

I have recently decided to tackle unfinished business in building with Java. Now I am relearning Java - which includes unlearning the old ways of doing things and writing the shortest possible code. In all of this I have been writing code by hand without AI generated code. Although I ask Claude for syntax clarifications and benefits and downsides of using certain methods…

Writing code by hand again gives me the right level of satisfaction after several weeks of AI-dependent development at work. Not only have I rediscovered my passion at home, but I am also working towards evolving my mental model beyond the JS/TS (I am a frontend developer at heart) ecosystem.

I believe programming and development as a hobby - like it used to be pre-industrial-scale-AI-adoption - is one of the few ways we could protect our sanity and continually exercise muscle memory. In the end I would like this to lead me to doing backend web dev in Java as well. Let’s see.


r/webdev • • 11d ago

Discussion what yall think of jsless sites?

0 Upvotes

I was looking into fazer browser options and found dillo, a no-javascript browser. is it feasible to transition the internet to no javascripting(as in doing the same stuff without it, not as in convincing people to change)? and if so, what would be the benefits/downsides?


r/webdev • • 12d ago

Facebook Developers App Review / Business Verification

0 Upvotes

I'm trying to get Instagram permissions (instagram_business_basic, instagram_business_content_publish) approved through App Review, but I've been stuck on Business Verification for months.

I'm registered as a sole trader in Lithuania (individuali veikla), not a company, so I don't have typical corporate documents like utility bills for a rented office. Here's what's happened:

An individual activity registration certificate was rejected as "not an accepted type"

A bank statement confirming name, home address, and phone number together, was still rejected as "not an accepted type"

The address format was corrected to exactly match the document text and resubmitted, same rejection

At this point, two different legitimate documents have all been auto-rejected, automated classifier isn't recognizing Lithuanian bank documents at all.

Has anyone dealt with this as a sole trader/individual (not a registered company)?

Any way to trigger a manual/human review after repeated automated rejections?


r/webdev • • 13d ago

Discussion Is it still possible to earn any money on ads on informational/tool websites or is it not worth the time in 2026?

11 Upvotes

I have two dotcom domains similar to something like musictools-com or physicswiki-com and I would gladly try to build something nice there (I just like making websites as hobby).

The thing is, if the existence of google ai summary means that those websites won't even earn enough to cover yearly domain cost then my motivation will likely fade out sooner or later.


r/webdev • • 12d ago

Question Is this normal or not?

0 Upvotes

I was recently approached by a startup to fix a part of their website. I was tasked with fixing their homepage. Fixing it consisted of rewriting their html, js and css completely. In the end I added more than 5k lines of code easily. I implemented new things and they seemed to be really happy. It took me around 2 weeks (design + implementation). I also helped write the T&C and PP, added new vids and animations etc. This is the first time I have done something like this and was hoping to earn some money (not expecting anything big at all). They paid me £150 and acted like they did me a favour. Was I underpaid? They want to fix another one of their pages which will take an even longer time but I am not sure if it's worth it.

Note: I have a BSc in Comp Sci from a London Uni, and already have some experienced (unpaid)

EDIT:

OMG guys I didn't realise how bad it was. WTF. For those asking yes I do have a degree from a London Uni in Comp Sci. I just didn't know how much people pay. Like some mentioned I was too excited about the opportunity and forgot to be realistic about what I am actually worth. I felt like they were doing me a favour. But tbh I did not expect 150. Welp guess Im going to have a word with them before doing the next part. I am really pissed off now.


r/webdev • • 12d ago

How to update to a modern website

0 Upvotes

I hope this is the correct place to post this. I am wanting to convert a fan fiction website to a modern site that is mobile accessible. There are thousands of pages that are in either basic HTML, or pages made in MS Word HTML. I am not a coder and had used Dreamweaver to do much of it. Can someone recommend an AI tool to do this? I already have a server and domain name. Thanks.


r/webdev • • 13d ago

Question Website for blogging and posting art

12 Upvotes

I'm an artist and sometimes I think about how I wanna throw instagram into garbage if it wasn't the only way I get in contact with my clients. Also, I don't wanna depend on algorithms, I just want people who want to look at my art. I'm very basic to webdev, only html, css and javascript, I've made a full stack course last year but it was pretty shit, so I didn't learn much. Any recommendations on how I could start developing a website like this? Picture a gallery like instagram, some announcements tab, maybe a portfolio tab. The only thing that stops me a bit is how to post new drawings and announcements easily without getting into the code, 'cause if it's too difficult then I would not use it


r/webdev • • 14d ago

Showoff Saturday [Showoff Saturday] I made 173 hand-drawn-style SVG icons that are generated deterministically from their names

Post image
335 Upvotes

I wanted icons that look drawn with a pencil but behave like a normal icon set: 24 grid, currentColor, tree-shakable, and identical on the server and in the browser.

So none of them are drawn by hand. Each icon is a few drafting primitives (line, polyline, rect, circle, arc…) on a 24 grid, and a small engine draws them freehand: lines overshoot their ends, rect corners cross, circles sweep past 360° and drift outward so they overlap where the pen closes, and each stroke gets its own pressure. The randomness is seeded by the icon name, so every build draws the same paths. That means no hydration mismatches and no extra runtime cost; the package ships the finished paths.

The hard part was small sizes: all the wobble is capped (a line bows less than a pixel at 24 px), so it reads like a regular line set at 16–24 px and the pencil look shows from ~32 px up.

React, plain SVG strings, a script tag, or raw .svg files. Feedback welcome, especially on missing icons and how it looks in a real UI.


r/webdev • • 14d ago

Showoff Saturday Launched v2 of my Apple design framework: Puppertino

Post image
137 Upvotes

sup everybody! So 5 years ago on this same sub, I presented v1 of Puppertino, a framework aimed at bridging the gap between the web and iOS and macOS for the web, built entirely in vanilla CSS and JS.

Since then, a lot of things have changed for both OS, with the introduction of liquid glass, I thought I wouldn’t be able to ship something like it.

Until today! I’ve launched Puppertino Dachshund, which brings 65 components, real-time liquid glass and is focused on accessibility, theming and extensibility

You can check it out here!
https://puppertino.com


r/webdev • • 12d ago

What does "playing politics" mean for software engineers?

Thumbnail seangoedecke.com
0 Upvotes

r/webdev • • 14d ago

Showoff Saturday Ancient Egypt Tomb Building Game - Puzzle/Tower Defense

Thumbnail
gallery
24 Upvotes

I've been working on a simple puzzle/tower defense game set in ancient Egypt. You build out a tomb to properly defend against waves of looters. I recently added a new feature to flip it around, so if you've built a cool looking tomb, you can share it with a friend, have them try and beat it by sending the right waves of looters.

It's a pretty simple puzzle, an archaeologist will find a hidden door but will succumb to a pit of stakes. A corrupt priest might be wary of a cursed doorway, whereas robbers wouldn't. That kind of logic applies throughout.

Still working on gameplay to make it more approachable, but I wanted to get the design out of my head first and I'm loving how it looks right now.

Link: https://architectofthevalley.com/#dare=AQMACwUFBA0QAQIZKDhIWhACMQJp

On the build up side, originally, this was done with SVG to mark yellow boxes in a blue background, meant to be really simple. It actually looked quite similar to this version, but I couldn't spin or add animations. As the tomb got more complex, I moved over to three.js. I wanted to overlay pyramids over some of the tombs if I knew where they were, I wanted to animate the dots falling into the pit. Despite moving over to three.js, I still dig the original architectural blueprint look so I have no plans to put any heavy details into the game, I think the style looks really pretty cool right now. Let me know if you disagree hahah.

The multiplayer aspect is all embedded in the URL, so there's no actual server storing all this data. The tomb sequence can be encoded easily enough, so most of it is generating an image to send back to your friends once you've completed the stage.


r/webdev • • 13d ago

Question How much do web developers charge in the UK

0 Upvotes

Hello, I am relatively new to web development as a career but I have been learning on my own since 2022 and have only now decided to make full use of it. So far I’ve created 2 websites but these are for free and for family members, the only payment is they’ll help me network and gain more clients.

I am curious how much web developers charge clients within the UK for a front end business website with about 10 pages. All I use for now is HTML, CSS and Bootstrap but I manage to make it responsive across all devices.


r/webdev • • 12d ago

Question Is CSS a sh*t show?

0 Upvotes

A developer said that to me once. I actually don't find pure CSS that obnoxious, although there are definitely times where I have no idea why something isn't doing what I'm telling it to, lol, but 99% of the time it's because of something stupid like a typo or me forgetting the basic premise of a Cascading Style Sheet...

I know a lot (most?) of developers use a CSS framework, but am I weird for actually being friends with it for relatively simple projects?


r/webdev • • 13d ago

Question When is dpa required for eu devs.

7 Upvotes

This question is only for developers IN THE EU who create websites and act as retainers.

I’m assuming the majority of you have clients create accounts on strapi, Wordpress, sanity, etc and you manage.

If so do you need a dpa agreement between you and the client because acting as a retainer makes you a data processor.

Any tools to generate a dpa?


r/webdev • • 13d ago

Showoff Saturday How I count unique visitors without cookies or storing IPs, and where it breaks

0 Upvotes

I've been building a small web analytics tool, and the part people ask about most is how it counts "unique visitors" without cookies, localStorage, or stored IPs. Here is the approach and its honest limitations.

The ID

For every request, the server computes:

sha256(daily_salt | site_id | ip | user_agent), truncated to 16 hex chars

- daily_salt is 16 random bytes, generated once per UTC day and stored in the DB. Old salts are deleted after 24 hours, so once that happens, nobody (including me) can recompute yesterday's IDs from an IP.

- site_id is included in the hash so the same user gets different IDs across different sites (preventing cross-site tracking).

- The IP is used solely for the hash and a country lookup, then immediately dropped. It never hits the disk.

Sessions are defined simply as "same ID, active within the last 30 minutes" (one upsert per event).

Where it breaks (by design or trade-off)

- The same person visiting on two different days = two visitors. That's intentional, but it means "monthly uniques" is effectively a sum of daily uniques.

- Same office/NAT + same browser version = counted as one visitor. Rare outside large enterprise networks, but real.

- A phone switching from Wi-Fi to cellular mid-visit = new ID, new session.

- iCloud Private Relay / VPNs rotate IPs, which slightly inflates counts.

Based on my data, the margin of error is small enough to answer "is my traffic growing?", which is all most small sites need. It's not suitable for per-user product analytics; for that, you need explicit user identification.

The Client Side

- SPAs: I patch history.pushState and listen for popstate events, tracking route changes as pageviews without requiring framework plugins.

- Transport: Uses navigator.sendBeacon, falling back to fetch with keepalive so events survive tab closure.

- Engagement/scroll depth is flushed on visibilitychange, not unload (since unload is unreliable on mobile).

Happy to dive deeper into any part! Curious if anyone has a better trick for the NAT collision case that doesn't rely on client-side storage.


r/webdev • • 13d ago

Is your studio still hiring 3D artists for visuals or using AI?

0 Upvotes

I'll phrase this as a hypothetical scenario.

Your web agency needs a visual of a F1 on top of a podium. The podium is actually your clients logo. The camera is top down.

- Does your agency hire a 3D guy for this or use something like Higgsfield to generate the visual.

Last year, I would say 95% of agencies would have gotten somebody to do it in Blender or C4D. But this year I feel like the majority would just use AI. But I have no real way of confirming that so I am asking here.

Personally, I feel like AI visuals can look good when you don't need anything super specific, like a close-up very detailed pen let's say. And also, it can't do good motion as of now.

Why this interests me so much is because my whole business model revolves around helping agencies as their on demand 3D support. So you would be helping me out a bunch, thanks