You are browsing as a guest. Sign up (or log in) to start making projects!

Nanos

@Nanos

Joined June 27th, 2026

  • 9Devlogs
  • 8Projects
  • 7Ships
  • 60Votes
Ship

A simple "link in bio" page built with HTML and CSS.

Build Time
This project was created in approximately 15 minutes as a quick test to see how fast I can make a simple static website.

Features
Profile section with avatar
Name and short description
Social media links
Clean responsive layout
Hover effects on links

Try project → See source code →
Open comments for this post

18m logged

A simple “link in bio” page built with HTML and CSS.

Build Time
This project was created in approximately 15 minutes as a quick test to see how fast I can make a simple static website.

Features
Profile section with avatarName and short descriptionSocial media linksClean responsive layout
Hover effects on links

0
Original post
@Nanos

A simple “link in bio” page built with HTML and CSS.

Build Time
This project was created in approximately 15 minutes as a quick test to see how fast I can make a simple static website.

Features
Profile section with avatarName and short descriptionSocial media linksClean responsive layout
Hover effects on links

Replies

Loading replies…

0
5
Open comments for this post

6h 40m 29s logged

Homelab Control Panel (Work in progress)
In this project I started building a self-hosted homelab control panel designed to manage and monitor a local machine or server from a single web interface.
The main idea is to combine multiple homelab tools into one simple dashboard that runs locally and is easy to extend.
What I’ve worked on so far:

Set up the base FastAPI backend

Structured the project into separate modules for monitoring, Docker management, file handling, and database tools

Built a basic web dashboard using HTML, CSS, and JavaScript

Planned integration of system metrics using psutil

Designed the structure for Docker container control and file access

Main idea:
The panel is meant to act like a lightweight homelab management system where you can:

monitor system performance

manage Docker containers

handle files on the server

run simple database queries

Challenges so far:
The main challenge was designing a structure that stays modular but still simple enough to build within a limited timeframe. I also had to think carefully about how system-level features should be exposed safely through a web interface.
Another useful aspect is that this mission came at a good time, since I was already planning to build something in this direction, so I was able to align my work with it.

0
Original post
@Nanos

Homelab Control Panel (Work in progress)
In this project I started building a self-hosted homelab control panel designed to manage and monitor a local machine or server from a single web interface.
The main idea is to combine multiple homelab tools into one simple dashboard that runs locally and is easy to extend.
What I’ve worked on so far:

Set up the base FastAPI backend

Structured the project into separate modules for monitoring, Docker management, file handling, and database tools

Built a basic web dashboard using HTML, CSS, and JavaScript

Planned integration of system metrics using psutil

Designed the structure for Docker container control and file access

Main idea:
The panel is meant to act like a lightweight homelab management system where you can:

monitor system performance

manage Docker containers

handle files on the server

run simple database queries

Challenges so far:
The main challenge was designing a structure that stays modular but still simple enough to build within a limited timeframe. I also had to think carefully about how system-level features should be exposed safely through a web interface.
Another useful aspect is that this mission came at a good time, since I was already planning to build something in this direction, so I was able to align my work with it.

Replies

Loading replies…

0
11
Open comments for this post

1h 16m 29s logged

Today I updated a large part of the website’s CSS to improve the design, layout, and responsiveness. I also added new features, fixed UI issues, and cleaned up the code to make future updates easier.

0
Original post
@Nanos

Today I updated a large part of the website’s CSS to improve the design, layout, and responsiveness. I also added new features, fixed UI issues, and cleaned up the code to make future updates easier.

Replies

Loading replies…

0
4
Ship Changes requested

What I built:
I took a flashy but fragile script and rebuilt its core into a robust, real-world CLI tool.

Why I'm proud:
I killed the "fake" elements. I removed the useless 5-second loading animation because a real sysadmin tool must be instant. I shifted the focus from code that simply runs to code that survives (proper defensive programming).

  • 1 devlog
  • 1h
Try project → See source code →
Open comments for this post

1h 18m 38s logged

NANOS MULTI-TOOL v3.0A modular, terminal-based system administration and utility suite built with Python and the Rich library.FeaturesSystem Tools: Monitor CPU, RAM, disk usage, and track top memory-consuming processes.Network Tools: Ping hosts, perform DNS lookups, scan common ports, and retrieve public IP.File Tools: Analyze file sizes, find exact duplicate files via SHA-256 chunking, and read text files.Security Tools: Generate cryptographically secure passwords and create SHA-256 hashes. Developer Tools: Beautify JSON, test HTTP GET requests, and encode/decode Base64 strings.Live Dashboard: Real-time overview of local/UTC time, OS info, and hardware stats.

0
Original post
@Nanos

NANOS MULTI-TOOL v3.0A modular, terminal-based system administration and utility suite built with Python and the Rich library.FeaturesSystem Tools: Monitor CPU, RAM, disk usage, and track top memory-consuming processes.Network Tools: Ping hosts, perform DNS lookups, scan common ports, and retrieve public IP.File Tools: Analyze file sizes, find exact duplicate files via SHA-256 chunking, and read text files.Security Tools: Generate cryptographically secure passwords and create SHA-256 hashes. Developer Tools: Beautify JSON, test HTTP GET requests, and encode/decode Base64 strings.Live Dashboard: Real-time overview of local/UTC time, OS info, and hardware stats.

Replies

Loading replies…

0
2
Ship

TerminalOS
A simulated CLI operating system in Python with a boot animation, dynamic account creation, a file manager (vi-like shortcuts), and a custom shell.

Core Achievements
Clean Arhitecture: Uses a structured Python class and a dictionary dispatch pattern instead of messy if/elif chains.

Crash Prevention: Built-in data recovery that automatically resets the JSON state if it gets corrupted during forced exits.

Polished Details: Raw ANSI text rendering for graphics/Matrix rain and hardcoded patches for input edge-cases.

Zero Dependencies: Runs entirely on Python's standard library.

Tester Guide
Dynamic Login: Type ANY username and password.

  • 1 devlog
  • 1h
Try project → See source code →
Open comments for this post

1h 16m logged

Developer Log - TerminalOS

Project Overview

TerminalOS is an interactive CLI simulation designed to mimic a basic Unix-like environment inside a standard console. The development focused heavily on shifting from unstructured procedural code to a robust object-oriented architecture, improving data persistence stability, and refining user interaction.

What Was Achieved

OOP Architecture Conversion

The entire codebase was refactored into a centralized TerminalOS class. Instead of passing state manually through disparate functions or relying on unsafe global variables, the application now encapsulates its configuration, user profiles, and runtime loops inside dedicated class properties (self.state, self.user, self.running).

Scalable Menu Navigation (Dictionary Dispatch)

To avoid messy, nested if/elif/else blocks inside the main user loop, a dictionary dispatch pattern was implemented in the desktop interface. By mapping user selection keys directly to object methods, the code remains clean, readable, and easy to extend with new features in the future.

Defensive Error Handling and State Recovery

Recognizing that sudden terminal closures frequently cause JSON files to corrupt, the state loading mechanism was hardened. The system explicitly traps json.JSONDecodeError and ValueError during startup. If a bad file is detected, it logs a warning cleanly to sys.stderr and drops back to a safe default payload, preventing hard system crashes.

Input Sanitization and Quality-of-Life Patches

Local validation testing revealed edge-case bugs, such as accidental whitespace entry skipping password validation. This was patched by applying .strip() to user string inputs and adding fallbacks for empty names. Additionally, the Matrix rain visual effect was updated with a customized mixed-ASCII charset to move away from overused open-source tropes.

Technical Debt & Next Steps

  • The hardware diagnostics panel currently uses static, hardcoded placeholder data. This needs to be converted to dynamic readouts using standard library utilities to keep the project dependency-free.
0
Original post
@Nanos

Developer Log - TerminalOS

Project Overview

TerminalOS is an interactive CLI simulation designed to mimic a basic Unix-like environment inside a standard console. The development focused heavily on shifting from unstructured procedural code to a robust object-oriented architecture, improving data persistence stability, and refining user interaction.

What Was Achieved

OOP Architecture Conversion

The entire codebase was refactored into a centralized TerminalOS class. Instead of passing state manually through disparate functions or relying on unsafe global variables, the application now encapsulates its configuration, user profiles, and runtime loops inside dedicated class properties (self.state, self.user, self.running).

Scalable Menu Navigation (Dictionary Dispatch)

To avoid messy, nested if/elif/else blocks inside the main user loop, a dictionary dispatch pattern was implemented in the desktop interface. By mapping user selection keys directly to object methods, the code remains clean, readable, and easy to extend with new features in the future.

Defensive Error Handling and State Recovery

Recognizing that sudden terminal closures frequently cause JSON files to corrupt, the state loading mechanism was hardened. The system explicitly traps json.JSONDecodeError and ValueError during startup. If a bad file is detected, it logs a warning cleanly to sys.stderr and drops back to a safe default payload, preventing hard system crashes.

Input Sanitization and Quality-of-Life Patches

Local validation testing revealed edge-case bugs, such as accidental whitespace entry skipping password validation. This was patched by applying .strip() to user string inputs and adding fallbacks for empty names. Additionally, the Matrix rain visual effect was updated with a customized mixed-ASCII charset to move away from overused open-source tropes.

Technical Debt & Next Steps

  • The hardware diagnostics panel currently uses static, hardcoded placeholder data. This needs to be converted to dynamic readouts using standard library utilities to keep the project dependency-free.

Replies

Loading replies…

0
2
Ship

What I did:
I built a simple Python IDE for kids using CustomTkinter. It has a code editor, a file explorer, and a run button. I also added a lessons tab with badges and a beginner mode that explains errors.

What was hard:
The hardest part was running the code without freezing the app. I had to learn how to use the threading module to run the subprocess in the background. Also, CustomTkinter textboxes do not support tags well, so I had to use the standard tkinter Text widget for the editor to get syntax highlighting and line numbers working.

What I am proud of:
I am proud of the error helper. Python tracebacks are scary for an 8 year old. I wrote a script that reads the errors and gives simple hints, like telling them they forgot a colon or that they cannot divide by zero.

What people should know to test it:
You need to install customtkinter first. Try the templates like the Snake Game and go through the lessons tab to see how the badges unlock. I will modify it in the future to add more features.

  • 1 devlog
  • 4h
Try project → See source code →
Open comments for this post

4h 23m 55s logged

I tried to build a simple Python IDE for kids using CustomTkinter. I wanted a clean layout with a code editor, file explorer, and a run button that doesn’t freeze the app. I also wanted to translate scary Python errors into simple English and add a lesson system with badges.I managed to do it by using the threading module to run code in the background. I used standard tkinter Text widgets for the code editor so I could add syntax highlighting and line numbers. For the errors, I wrote a helper script that uses regex to find common mistakes and prints friendly hints. The lessons and badges are stored in a local JSON file.I will modify it in the future. Right now the input function doesn’t work because of the background thread, so I want to fix that. I also plan to add more templates and maybe drag and drop file support.

0
Original post
@Nanos

I tried to build a simple Python IDE for kids using CustomTkinter. I wanted a clean layout with a code editor, file explorer, and a run button that doesn’t freeze the app. I also wanted to translate scary Python errors into simple English and add a lesson system with badges.I managed to do it by using the threading module to run code in the background. I used standard tkinter Text widgets for the code editor so I could add syntax highlighting and line numbers. For the errors, I wrote a helper script that uses regex to find common mistakes and prints friendly hints. The lessons and badges are stored in a local JSON file.I will modify it in the future. Right now the input function doesn’t work because of the background thread, so I want to fix that. I also plan to add more templates and maybe drag and drop file support.

Replies

Loading replies…

0
2
Ship

What did you make?
I made a browser clicker game using just raw HTML, CSS, and JS with zero frameworks. I took a ton of inspiration from Cookie Clicker. It has 15 different buildings, a synergy system where buying 10 of the same building doubles its output, random golden cookie bonuses, and a prestige system where you reset your progress to earn permanent diamond upgrades.

What was challenging?
The prestige system and the save/load logic. I didn't really plan the code architecture before I started writing so it got pretty messy. Trying to track all the different multipliers at the same time (base stats, normal upgrades, permanent prestige bonuses, and the x777 golden cookie frenzy) without them overriding each other was a huge headache.

What are you proud of?
Honestly, just how satisfying the UI feels to use. I spent way too long tweaking the CSS with frosted glass effects and a fake 3D button shadow that squishes when you click it. On the technical side, I'm glad I actually took the time to use requestAnimationFrame with delta time so your passive income still calculates correctly if you minimize the browser tab.

What should people know so they can test your project?
You just need to open the index.html file in any browser. You don't even need a local server. One thing to note is that the main script file is named scrpit.js instead of script. I made a typo when I first created the file and just never bothered renaming it.

  • 1 devlog
  • 2h
Try project → See source code →
Open comments for this post

2h 26m 52s logged

How I spent 3 hours making a clicker game and lost my mind
I sat down yesterday thinking, “A basic Cookie Clicker clone will take me 1 hour top.” Three hours later, I have 15 buildings, a full prestige system with a separate diamond shop, and a main JavaScript file named scrpit.js that I refuse to rename because I’ve accepted my typo as a feature.
What happened in those 3 hours?
Hour 1: Making it look shiny.
Before writing any actual game logic, I spent way too long tweaking CSS. I added glassmorphism to the menus, gave the main button a fake 3D shadow that squishes when you click it, and added a neon glow that pulses behind it. The game didn’t work yet, but clicking that empty button felt good.
Hour 2: Feature creep.
I started with 5 buildings, then thought, “let’s add synergies where buying 10 of the same building doubles its output.” Then I added Golden Cookies that spawn randomly to give you a x777 click frenzy (yes i got it from Cookie Clicker).
Hour 3: The Prestige System.
I decided to add a reset mechanic. Once you hit 1 million points, you can reset for Diamonds. But instead of a boring flat multiplier, I built a whole separate Diamond Shop where you spend your hard-earned gems on permanent upgrades that carry over into your next run. Getting the localStorage save function to remember both your normal run AND your permanent prestige upgrades was… chaotic.

The Code
It is absolute spaghetti, but it works.I used innerHTML += to render the building shop because I was too lazy to do proper DOM manipulation. I wrote manual for loops to search through arrays instead of using .find() because my brain was fried.
The only “clean” thing I did was implement a proper requestAnimationFrame game loop with Delta Time so your passive income doesn’t break if you minimize the browser tab. The game is completely unbalanced and the numbers get stupidly huge, but it was a fun 3 hours. Check out the repo if you want to look at scrpit.js and judge my variable names. Let me know what CPS you can hit!

0
Original post
@Nanos

How I spent 3 hours making a clicker game and lost my mind
I sat down yesterday thinking, “A basic Cookie Clicker clone will take me 1 hour top.” Three hours later, I have 15 buildings, a full prestige system with a separate diamond shop, and a main JavaScript file named scrpit.js that I refuse to rename because I’ve accepted my typo as a feature.
What happened in those 3 hours?
Hour 1: Making it look shiny.
Before writing any actual game logic, I spent way too long tweaking CSS. I added glassmorphism to the menus, gave the main button a fake 3D shadow that squishes when you click it, and added a neon glow that pulses behind it. The game didn’t work yet, but clicking that empty button felt good.
Hour 2: Feature creep.
I started with 5 buildings, then thought, “let’s add synergies where buying 10 of the same building doubles its output.” Then I added Golden Cookies that spawn randomly to give you a x777 click frenzy (yes i got it from Cookie Clicker).
Hour 3: The Prestige System.
I decided to add a reset mechanic. Once you hit 1 million points, you can reset for Diamonds. But instead of a boring flat multiplier, I built a whole separate Diamond Shop where you spend your hard-earned gems on permanent upgrades that carry over into your next run. Getting the localStorage save function to remember both your normal run AND your permanent prestige upgrades was… chaotic.

The Code
It is absolute spaghetti, but it works.I used innerHTML += to render the building shop because I was too lazy to do proper DOM manipulation. I wrote manual for loops to search through arrays instead of using .find() because my brain was fried.
The only “clean” thing I did was implement a proper requestAnimationFrame game loop with Delta Time so your passive income doesn’t break if you minimize the browser tab. The game is completely unbalanced and the numbers get stupidly huge, but it was a fun 3 hours. Check out the repo if you want to look at scrpit.js and judge my variable names. Let me know what CPS you can hit!

Replies

Loading replies…

0
2

Followers

Loading…