As an aspiring webmaster πΈοΈ, I spend most of my free time designing, developing and maintaining websites. π To ease the process, I ensure that I choose the best tools available on the market.
Choosing the wrong tools could lead to you doing the wrong work (like fixing issues caused by interfacing layers) or more work than necessary π’ (like having to satisfy the requirements of some framework. Yes, I'm looking at you TypeScript).
On the other hand, choosing the right tools can help you get things done much faster and with simpler and scalable results.π¦Έ
What makes a good tool?
When I'm choosing a tool, I make sure that it is:
- Simple πΆ: Not to be confused with easy, but it needs to be primitive, like shapes. Simple shapes can be used to create any drawing. I need the tool to do the same.
- Free (or low cost) π: This may be the most important. Being able to scale is directly tied to how cheap everything is.
- Configurable βοΈ: Can I make it do whatever I want?
- Minimal π«: Can I run the tool on minimal hardware, or do I need to buy a gaming PC just to run the program? Does it solve mainly one problem and does it solve it well?
There are other factors, but the ones listed have the highest priority to me.
What are the tools for?
I use the tools for what I call the Five Fingers of Web Design:
- Strategy
- Design
- Development
- Deployment
- Analytics/marketing
I group my tools in to those five categories.
Tools for strategy
I use these tools to research and discover the target audience, then plan the next steps of execution.
- Google Meet π₯: As you would expect, I use this to communicate with clients and to interview their customers too to get a glimpse of the problems they're facing.
- GitHub πΌ: I use a kanban on GitHub for planning the various stages.
Tools for design
I use these tools to craft my designs.
- Pen and paper π: This is not software but just as important as any other tool. I use it to create wireframes that would be recreated with software.
Tools I run on my browser:
- Penpot π¨: A design and prototyping tool. This is where all my mockups reside. It is an open-source alternative to Figma.
- Dribbble πΌοΈ: A social media platform where design professionals share their work. I go there for inspiration (and to steal ideas).
- Chromora π: I use Chromora to create color palettes.
- Boxicons π¦: I download all my free SVG icons at Boxicons.
- Typescale π€: I use this website to choose typographic scales.
Tools I install on my computer:
- Inkscape ποΈ: A free and open-source cross-platform vector graphics editor similar to Adobe Illustrator. I use it to make interactive icons and images.
- GNU Image Manipulation Program (GIMP) ποΈ: A free and open-source cross-platform image editor similar to Adobe Photoshop. I use it to crop backgrounds out of images.
Tools for development
I use these tools to bring my designs to life. (Mostly frontend work.)
Tools I install on my computer:
Tools I run on my browser:
- Penpot π¨: To view my created mockups.
- Google Webfonts Helper π : This website helps to provide Google fonts as WOFF2 files and stripped of unnecessary (or commonly unused) glyphs.
- Utopia π: I use this tool to choose a fluid typographic scale and spacing scale.
- Mozilla Developer Network (MDN) π: I visit here when I'm confused (which means everyday).
- HTML, CSS and JavaScript π¨βπ»: Of course, the languages of the web!
Tools I run in my terminal:
- dyetide π: I use dyetide to convert colors from RGB and hex to HSL (the human-comprehensible version of color).
- jq π : I use jq to transform, query and filter JSON files.
- xmllint π: I use xmllint to query XML and (X)HTML files.
- htmlq π: I use htmlq to query HTML files.
- vim βοΈ: I use vim as an editor.
- ssm π: I use ssm to create SVG spritesheets.
Tools I want to try:
- Emmet βοΈ: This tool is for writing HTML faster through typing shortcuts.
Tools for deployment
I use these tools after the website has been deployed to the server. (Mostly backend work.)
- Python π: Language of choice.
- Flask π’: Web framework of choice.
- uWSGI ποΈ: Web server of choice.
- nginx ποΈ: Proxy server of choice.
- Debian π€: OS of choice.
- Vultr π¦ : VPS of choice.
- Cloudflare π: CDN of choice.
- ssh πΆ: For securely accessing the server.
- rsync πΆ: For syncing data with my server.
- Let's Encrypt π: For generating free SSL certificates.
Tools for analytics/marketing
These tools are used to monitor your impact or keep my client's customers coming back.
For any of my clients:
- Beacon API π: This API is used to keep monitor the users patterns by sending data concerning the use of the website.
- Mailer Lite π¨: This website helps with automation for email marketing.
For my websites:
- goaccess π: A web analytics application for Unix-like systems. I use it to check traffic on all my websites.
The bottom line
My goal is to employ as little tools as necessary to get the job done when creating websites. This benefits everyone:
- My client's customers (i.e. the site visitors) get to enjoy a simple, lightweight, accessible website with a pleasant user experience ποΈ because there is not a lot of bloat and unnecessary code.
- My client doesn't have to break the bank to run a website. πͺ Pricing can be controlled better, since it's not dependent on website builders.
- I get to solve problems π§ (with design and code) and have fun doing it! πΊ
Now that's something I can scale! βοΈ