{"id":2168,"date":"2025-06-09T18:08:27","date_gmt":"2025-06-09T15:08:27","guid":{"rendered":"https:\/\/shedov.top\/ru\/?page_id=2168"},"modified":"2026-03-17T20:38:49","modified_gmt":"2026-03-17T17:38:49","slug":"primery-koda","status":"publish","type":"page","link":"https:\/\/shedov.top\/ru\/primery-koda\/","title":{"rendered":"\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u043c\u043e\u0435\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0442\u0435\u043a\u0430\u0445 \u0438 CMS"},"content":{"rendered":"<div class=\"resume_wrap\">\n  <div class=\"resume\">\n\n    <div class=\"single_contents gD0XQWXJt6\">\n      <nav>\n        <h2>Languages:<\/h2>\n\n        <ul>\n          <li><a href=\"#paragraph_1\">Rust<\/a><\/li>\n          <li><a href=\"#paragraph_2\">JS<\/a><\/li>\n          <li><a href=\"#paragraph_3\">PHP<\/a><\/li>\n          <li><a href=\"#paragraph_22\">Python<\/a><\/li>\n        <\/ul>\n\n        <h2>Runtime Environment:<\/h2>\n\n        <ul>\n          <li><a href=\"#paragraph_7\">Node.js<\/a><\/li>\n        <\/ul>\n\n        <h2>Tech Stack:<\/h2>\n\n        <ul>\n          <li><a href=\"#paragraph_51\">LARS (Leptos, Actix Web, Rust, ScyllaDB)<\/a><\/li>\n          <li><a href=\"#paragraph_52\">MERN (MongoDB, Express.js, React, Node.js)<\/a><\/li>\n        <\/ul>\n\n        <h2>Frameworks:<\/h2>\n\n        <ul>\n          <li><a href=\"#paragraph_4\">Leptos<\/a><\/li>\n          <li><a href=\"#paragraph_5\">React<\/a><\/li>\n          <li><a href=\"#paragraph_6\">Express.js<\/a><\/li>\n          <li><a href=\"#paragraph_61\">Electron.js<\/a><\/li>\n        <\/ul>\n\n        <h2>CMS:<\/h2>\n\n        <ul>\n          <li><a href=\"#paragraph_8\">WordPress<\/a><\/li>\n        <\/ul>\n\n        <h2>Databases:<\/h2>\n\n        <ul>\n          <li><a href=\"#paragraph_81\">ScyllaDB<\/a><\/li>\n        <\/ul>\n        <ul>\n          <li><a href=\"#paragraph_82\">MongoDB<\/a><\/li>\n        <\/ul>\n\n        <h2>Layout:<\/h2>\n\n        <ul>\n          <li><a href=\"#paragraph_9\">Pixel Perfect<\/a><\/li>\n\n        <\/ul>\n\n        <h2>Animation:<\/h2>\n\n        <ul>\n          <li><a href=\"#paragraph_10\">JS<\/a><\/li>\n          <li><a href=\"#paragraph_11\"> React<\/a><\/li>\n          <li><a href=\"#paragraph_12\">CSS<\/a><\/li>\n          <li><a href=\"#paragraph_13\">SVG<\/a><\/li>\n        <\/ul>\n\n      <\/nav>\n\n    <\/div>\n\n    <p id=\"paragraph_2\" class=\"resume_naming_specializations_1\"><strong>---- JS ----<\/strong><\/p>\n    <p id=\"paragraph_52\" class=\"resume_naming_specializations_2\" style=\"margin-top: 9px; text-align: center;\">\n      <strong>---- Stack: MERN (MongoDB, Express.js, React, Node.js) ----<\/strong><\/p>\n    <p class=\"resume_naming_specializations_4\" style=\"margin-top: 9px;\"><strong>---- Frontend ----<\/strong><\/p>\n\n    <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/tree\/main\/main\/frontend\" target=\"_blank\"\n        rel=\"noopener\">\n        Frontend part<\/a> <a href=\"https:\/\/shedov.top\/description-and-capabilities-of-crystal-v1-0\/#paragraph_8\"\n        target=\"_blank\" rel=\"noopener\">CRYSTAL v1.0 (Production)<\/a>\n    <\/p>\n\n    <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/tree\/main\/main\/frontend\" target=\"_blank\"\n        rel=\"noopener\">Frontend part<\/a> <a href=\"https:\/\/shedov.top\/description-and-capabilities-of-crystal-v2-0\/\"\n        target=\"_blank\" rel=\"noopener\">CRYSTAL v2.0<\/a>\n    <\/p>\n\n    <p id=\"paragraph_5\" class=\"resume_naming_specializations_3\"><strong>---- React ----<\/strong><\/p>\n    <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- Fetch API ----<\/strong><\/p>\n    <p><a\n        href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/blob\/main\/main\/frontend\/src\/shared\/api\/httpClient.js\"\n        rel=\"noopener\" target=\"_blank\">httpClient<\/a><\/p>\n    <p class=\"resume_naming_specializations_5\"><strong>---- \/Fetch API ----<\/strong><\/p>\n    <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- TanStack Query v5 ---- <\/strong>\n    <\/p>\n    <p><a\n        href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/blob\/c4b337d1bb2240d83162e5f906b948187d8f74ae\/frontend\/src\/features\/accessModal\/AccessModal.jsx#L198C10-L198C17\"\n        target=\"_blank\" rel=\"noopener\">\n        register<\/a><span> \/ <\/span><a\n        href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/tree\/main\/main\/frontend\/src\/features\/auth\"\n        target=\"_blank\" rel=\"noopener\">auth<\/a><span> \/ <\/span><a\n        href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/blob\/c4b337d1bb2240d83162e5f906b948187d8f74ae\/frontend\/src\/features\/accessModal\/AccessModal.jsx#L143\"\n        target=\"_blank\" rel=\"noopener\">logIn<\/a><span> \/ <\/span><a\n        href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/blob\/c4b337d1bb2240d83162e5f906b948187d8f74ae\/frontend\/src\/widgets\/OptionsMenu\/parts\/OptionsMenuUser\/OptionsMenuUser.jsx#L101\"\n        target=\"_blank\" rel=\"noopener\">logOut<\/a>\n    <\/p>\n    <p class=\"resume_naming_specializations_5\"><strong>---- \/TanStack Query v5 ----<\/strong><\/p>\n    <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- Yup ----<\/strong><\/p>\n    <p><a\n        href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/blob\/c4b337d1bb2240d83162e5f906b948187d8f74ae\/frontend\/src\/features\/accessModal\/AccessModal.jsx#L55\"\n        target=\"_blank\" rel=\"noopener\">\n        validation<\/a>\n    <\/p>\n    <p class=\"resume_naming_specializations_5\"><strong>---- \/Yup ----<\/strong><\/p>\n\n    <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- WebSocket ----<\/strong><\/p>\n    <p><a\n        href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/frontend\/src\/shared\/hooks\/useWebSocket\/useWebSocket.js\"\n        target=\"_blank\" rel=\"noopener\">\n        useWebSocket.js<\/a>\n    <\/p>\n    <p style=\"margin-bottom: 9px;\" class=\"resume_naming_specializations_5\"><strong>---- \/WebSocket ----<\/strong><\/p>\n\n    <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- reCAPTCHA v3 ----<\/strong><\/p>\n    <p><a\n        href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/blob\/main\/main\/frontend\/src\/shared\/hooks\/useRecaptchaV3\/useRecaptchaV3.jsx\"\n        target=\"_blank\" rel=\"noopener\">useRecaptchaV3.jsx<\/a>\n    <\/p>\n    <p style=\"margin-bottom: 9px;\" class=\"resume_naming_specializations_5\"><strong>---- \/reCAPTCHA v3 ----<\/strong><\/p>\n\n    <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/frontend\/src\/app\/App.jsx\" target=\"_blank\"\n        rel=\"noopener\">App.jsx<\/a>\n    <\/p>\n    <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/frontend\/src\/pages\/HomePage\/HomePage.jsx\"\n        target=\"_blank\" rel=\"noopener\">HomePage.jsx<\/a>\n    <\/p>\n\n    <p><a\n        href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/frontend\/src\/widgets\/PostPreview\/PostPreview.jsx\"\n        target=\"_blank\" rel=\"noopener\">PostPreview.jsx<\/a>\n    <\/p>\n\n    <p><a\n        href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/frontend\/src\/pages\/FullPostPage\/FullPostPage.jsx\"\n        target=\"_blank\" rel=\"noopener\">FullPostPage.jsx<\/a>\n    <\/p>\n\n    <p><a\n        href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/frontend\/src\/pages\/UserEditPage\/UserEditPage.jsx\"\n        target=\"_blank\" rel=\"noopener\">UserEditPage.jsx<\/a>\n    <\/p>\n    <p><a\n        href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/frontend\/src\/shared\/hooks\/formatting\/useFormattedPostDate\/useFormattedPostDate.jsx\"\n        target=\"_blank\" rel=\"noopener\">useFormattedPostDate.jsx<\/a>\n    <\/p>\n    <p class=\"resume_naming_specializations_3\"><strong>---- \/React ----<\/strong><\/p>\n\n    <p class=\"resume_naming_specializations_4\" style=\"margin-top: 9px;\"><strong>---- \/Frontend ----<\/strong><\/p>\n\n    <p id=\"paragraph_82\" class=\"resume_naming_specializations_4\"><strong>---- Backend ----<\/strong><\/p>\n\n    <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/tree\/main\/main\/backend\" target=\"_blank\"\n        rel=\"noopener\">\n        Backend part<\/a> <a href=\"https:\/\/shedov.top\/description-and-capabilities-of-crystal-v1-0\/#paragraph_8\"\n        target=\"_blank\" rel=\"noopener\">CRYSTAL v1.0 (Production)<\/a>\n    <\/p>\n\n    <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/tree\/main\/main\/backend\" target=\"_blank\" rel=\"noopener\">\n        Backend part<\/a> <a href=\"https:\/\/shedov.top\/description-and-capabilities-of-crystal-v2-0\/\" target=\"_blank\"\n        rel=\"noopener\">CRYSTAL v2.0<\/a>\n    <\/p>\n\n\n    <p id=\"paragraph_7\" class=\"resume_naming_specializations_1\"><strong>---- Node.js\n        ----<\/strong><\/p>\n    <p id=\"paragraph_6\" class=\"resume_naming_specializations_3\"><strong>---- Express.js ----<\/strong><\/p>\n    <p class=\"resume_naming_specializations_3\"><strong>---- core ----<\/strong><\/p>\n    <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/backend\/src\/core\/main.js\" target=\"_blank\"\n        rel=\"noopener\">\n        main.js<\/a>\n    <\/p>\n    <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/backend\/src\/core\/engine\/web\/app.js\"\n        target=\"_blank\" rel=\"noopener\">\n        app.js<\/a>\n    <\/p>\n    <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/backend\/src\/core\/engine\/web\/server.js\"\n        target=\"_blank\" rel=\"noopener\">server.js<\/a>\n    <\/p>\n    <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/backend\/src\/core\/engine\/db\/connectDB.js\"\n        target=\"_blank\" rel=\"noopener\">connectDB.js (native driver MongoDB)<\/a>\n    <\/p>\n    <p><a\n        href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/blob\/main\/main\/backend\/src\/core\/engine\/db\/connectDB.js\"\n        target=\"_blank\" rel=\"noopener\">\n        connectDB.js (Mongoose)<\/a>\n    <\/p>\n\n    <p><a\n        href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/backend\/src\/core\/engine\/db\/initializeCollections.js\"\n        target=\"_blank\" rel=\"noopener\">initializeCollections.js (native driver MongoDB)<\/a>\n    <\/p>\n\n    <p><a\n        href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/backend\/src\/core\/engine\/web\/routes\/initRoutes.js\"\n        target=\"_blank\" rel=\"noopener\">\n        initRoutes.js<\/a>\n    <\/p>\n    <p class=\"resume_naming_specializations_3\"><strong>---- \/core ----<\/strong><\/p>\n\n    <p class=\"resume_naming_specializations_3\"><strong>---- modules (native driver MongoDB)\n        ----<\/strong><\/p>\n    <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/tree\/main\/main\/backend\/src\/modules\/auth\" target=\"_blank\"\n        rel=\"noopener\">\n        auth (controller, middleware, routes)<\/a>\n    <\/p>\n    <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/tree\/main\/main\/backend\/src\/modules\/user\" target=\"_blank\"\n        rel=\"noopener\">\n        user (controller, schema, routes)<\/a>\n    <\/p>\n    <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/tree\/main\/main\/backend\/src\/modules\/post\" target=\"_blank\"\n        rel=\"noopener\">\n        post (controller, schema, routes)<\/a>\n    <\/p>\n    <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/tree\/main\/main\/backend\/src\/modules\/like\" target=\"_blank\"\n        rel=\"noopener\">\n        like (controller, schema, routes)<\/a>\n    <\/p>\n    <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/tree\/main\/main\/backend\/src\/modules\/hashtag\"\n        target=\"_blank\" rel=\"noopener\">\n        hashtag (controller, schema, routes)<\/a>\n    <\/p>\n    <p class=\"resume_naming_specializations_3\"><strong>---- \/modules (native driver MongoDB) ----<\/strong><\/p>\n\n    <p class=\"resume_naming_specializations_3\"><strong>---- modules (Mongoose) ----<\/strong>\n    <\/p>\n    <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/tree\/main\/main\/backend\/src\/modules\/auth\"\n        target=\"_blank\" rel=\"noopener\">\n        auth (controller, middleware, routes)<\/a>\n    <\/p>\n    <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/tree\/main\/main\/backend\/src\/modules\/user\"\n        target=\"_blank\" rel=\"noopener\">\n        user (controller, model, routes)<\/a>\n    <\/p>\n    <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/tree\/main\/main\/backend\/src\/modules\/post\"\n        target=\"_blank\" rel=\"noopener\">\n        post (controller, model, routes)<\/a>\n    <\/p>\n    <p class=\"resume_naming_specializations_3\"><strong>---- \/modules (Mongoose) ----<\/strong><\/p>\n\n    <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- sharp ----<\/strong><\/p>\n    <p><a\n        href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/backend\/src\/shared\/utils\/sharp\/sharp-upload.js\"\n        target=\"_blank\" rel=\"noopener\">sharp-upload.js<\/a><\/p>\n    <p style=\"margin-bottom: 9px;\" class=\"resume_naming_specializations_5\"><strong>---- \/sharp ----<\/strong><\/p>\n\n    <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- WebSocket ----<\/strong><\/p>\n    <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/backend\/src\/core\/engine\/web\/websocket.js\"\n        target=\"_blank\" rel=\"noopener\">websocket.js<\/a>\n    <\/p>\n    <p style=\"margin-bottom: 9px;\" class=\"resume_naming_specializations_5\"><strong>---- \/WebSocket ----<\/strong><\/p>\n\n    <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- reCAPTCHA v3 ----<\/strong><\/p>\n    <p><a\n        href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/blob\/main\/main\/backend\/src\/shared\/utils\/recaptcha-v3\/recaptcha-v3.js\"\n        target=\"_blank\" rel=\"noopener\">recaptcha-v3.js<\/a>\n    <\/p>\n    <p style=\"margin-bottom: 9px;\" class=\"resume_naming_specializations_5\"><strong>---- \/reCAPTCHA v3 ----<\/strong><\/p>\n\n    <p class=\"resume_naming_specializations_3\"><strong>---- \/Express.js ----<\/strong><\/p>\n    <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- PM2 ----<\/strong><\/p>\n    <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/blob\/main\/main\/backend\/ecosystem.config.cjs\"\n        target=\"_blank\" rel=\"noopener\">ecosystem.config.cjs<\/a>\n    <\/p>\n    <p class=\"resume_naming_specializations_5\"><strong>---- \/PM2 ----<\/strong><\/p>\n    <p class=\"u39crdDEQL\"><strong>---- \/Node.js\n        ----<\/strong><\/p>\n\n    <p class=\"resume_naming_specializations_4\" style=\"margin-top: 9px;\"><strong>---- \/Backend ----<\/strong><\/p>\n    <p class=\"resume_naming_specializations_2\" style=\"margin-top: 9px; text-align: center;\"><strong>---- \/Stack: MERN\n        (MongoDB, Express.js, React, Node.js) ----<\/strong><\/p>\n\n    <p class=\"resume_naming_specializations_3\"><strong>---- npm ----<\/strong><\/p>\n\n    <p class=\"resume_naming_specializations_2\"><strong>---- Multithreading ----<\/strong><\/p>\n    <a href=\"https:\/\/github.com\/AndrewShedov\/turboMaker\/tree\/main\/src\" target=\"_blank\" rel=\"noopener\">\n      turboMaker<\/a>\n    <p class=\"resume_naming_specializations_2\"><strong>---- \/Multithreading ----<\/strong><\/p>\n    <p class=\"resume_naming_specializations_3\"><strong>---- \/npm ----<\/strong><\/p>\n\n<p id=\"paragraph_61\" class=\"resume_naming_specializations_3\"><strong>---- Electron.js ----<\/strong><\/p>\n\n    <a href=\"https:\/\/github.com\/AndrewShedov\/class-generator\" target=\"_blank\" rel=\"noopener\">\n      Class Generator<\/a>\n\n    <p class=\"resume_naming_specializations_3\"><strong>---- \/Electron.js ----<\/strong><\/p>\n\n    <p class=\"u39crdDEQL\"><strong>---- \/JS\n        ----<\/strong><\/p>\n\n\n    <p id=\"paragraph_1\" class=\"resume_naming_specializations_1\"><strong>---- Rust ----<\/strong><\/p>\n\n    <p id=\"paragraph_51\" class=\"resume_naming_specializations_2\" style=\"margin-top: 9px; text-align: center;\">\n      <strong>---- Stack: LARS (Leptos, Actix Web, Rust, ScyllaDB) ----<\/strong><\/p>\n\n    <p id=\"paragraph_4\" class=\"resume_naming_specializations_3\"><strong>---- Leptos ----<\/strong><\/p>\n    <p id=\"paragraph_81\" class=\"resume_naming_specializations_2\"><strong>---- SSR ----<\/strong><\/p>\n    <a href=\"https:\/\/github.com\/AndrewShedov\/enter-text--LARS\" target=\"_blank\" rel=\"noopener\"> Enter Text (LARS)<\/a>\n    <p class=\"resume_naming_specializations_2\"><strong>---- \/SSR ----<\/strong><\/p>\n    <p class=\"resume_naming_specializations_3\"><strong>---- \/Leptos ----<\/strong><\/p>\n\n    <p class=\"resume_naming_specializations_2\" style=\"margin-top: 9px; text-align: center;\"><strong>---- \/Stack: LARS\n        (Leptos, Actix Web, Rust, ScyllaDB) ----<\/strong><\/p>\n\n    <p class=\"resume_naming_specializations_3\"><strong>---- crates.io ----<\/strong><\/p>\n    <p class=\"resume_naming_specializations_2\"><strong>---- Multithreading ----<\/strong><\/p>\n    <a href=\"https:\/\/github.com\/AndrewShedov\/turbo-maker\/tree\/main\/src\" target=\"_blank\" rel=\"noopener\">\n      turbo-maker<\/a>\n    <p class=\"resume_naming_specializations_2\"><strong>---- \/Multithreading ----<\/strong><\/p>\n    <p class=\"resume_naming_specializations_3\"><strong>---- \/crates.io ----<\/strong><\/p>\n\n    <p class=\"u39crdDEQL\"><strong>---- \/Rust\n        ----<\/strong><\/p>\n\n        <p id=\"paragraph_22\" class=\"resume_naming_specializations_1\"><strong>---- Python\n        ----<\/strong><\/p>\n\n<p class=\"resume_naming_specializations_2\"><strong>---- DevSecOps ----<\/strong><\/p>\n\n    <p><a href=\"https:\/\/github.com\/AndrewShedov\/vm-inspector\" target=\"_blank\" rel=\"noopener\">VM Inspector<\/a><\/p>\n\n    <p class=\"resume_naming_specializations_2\"><strong>---- \/DevSecOps ----<\/strong><\/p>\n\n\n\n    <p class=\"u39crdDEQL\"><strong>---- \/Python\n        ----<\/strong><\/p>\n\n    <p id=\"paragraph_3\" class=\"resume_naming_specializations_1\"><strong>---- PHP\n        ----<\/strong><\/p>\n    <p id=\"paragraph_8\" class=\"resume_naming_specializations_3\"><strong>---- WordPress ----<\/strong><\/p>\n    <p><a href=\"https:\/\/github.com\/AndrewShedov\/shedov.top--custom-theme--wordpress\" target=\"_blank\" rel=\"noopener\">\n        Custom Theme<\/a> for <a href=\"https:\/\/shedov.top\/\" target=\"_blank\" rel=\"noopener\">shedov.top<\/a> website<\/p>\n    <p class=\"resume_naming_specializations_3\"><strong>---- \/WordPress ----<\/strong><\/p>\n    <p class=\"u39crdDEQL\"><strong>---- \/PHP\n        ----<\/strong><\/p>\n\n\n    <p class=\"resume_naming_specializations_1\"><strong>---- Layout ----<\/strong><\/p>\n    <p id=\"paragraph_9\" class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- Pixel Perfect\n        ----<\/strong><\/p>\n    <p style=\"margin-top: 9px;\"><strong> Complex, multi-level, adaptive layout with animation (JS, Flexbox, Grid)\n      <\/strong><\/p>\n    <p><a href=\"https:\/\/github.com\/AndrewShedov\/website-home-page--best-tour-plan\" target=\"_blank\" rel=\"noopener\">\n        code<\/a><span> | <\/span><a style=\"color: var(--live_text_color);\"\n        href=\"https:\/\/website-home-page-best-tour-plan.vercel.app\/\" target=\"_blank\" rel=\"noopener\">\n        live<\/a>\n    <\/p>\n    <p style=\"margin-top: 9px;\"><strong> Adaptive layout with animation (JS, Flexbox, Grid) <\/strong><\/p>\n    <p><a href=\"https:\/\/github.com\/AndrewShedov\/landing-page--photographer-portfolio\" target=\"_blank\" rel=\"noopener\">\n        code<\/a><span> | <\/span><a style=\"color: var(--live_text_color);\"\n        href=\"https:\/\/landing-page-photographer-portfolio.vercel.app\/\" target=\"_blank\" rel=\"noopener\">\n        live<\/a>\n    <\/p>\n    <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- \/Pixel Perfect ----<\/strong><\/p>\n    <p class=\"u39crdDEQL\"><strong>---- \/Layout\n        ----<\/strong><\/p>\n\n    <p class=\"resume_naming_specializations_1\"><strong>---- Animation\n        ----<\/strong><\/p>\n    <p id=\"paragraph_10\" class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- JS ----<\/strong>\n    <\/p>\n    <p style=\"margin-top: 9px;\"><strong>Animated popup return form call <\/strong><\/p>\n    <p><a\n        href=\"https:\/\/github.com\/AndrewShedov\/andrewshedov.github.io\/tree\/master\/animated_pure_js_callback_popup_using_css_property_display\"\n        target=\"_blank\" rel=\"noopener\">\n        code<\/a><span> | <\/span><a style=\"color: var(--live_text_color);\"\n        href=\"https:\/\/andrewshedov.github.io\/animated_pure_js_callback_popup_using_css_property_display\/\"\n        target=\"_blank\" rel=\"noopener\">\n        live<\/a>\n    <\/p>\n    <p style=\"margin-top: 9px;\"><strong> Smoothly appearing up button + adaptive side menu <\/strong><\/p>\n    <p><a\n        href=\"https:\/\/github.com\/AndrewShedov\/andrewshedov.github.io\/tree\/master\/smoothly_appearing_up_button_in_pure_js_%2B_adaptive_side_menu\"\n        target=\"_blank\" rel=\"noopener\">\n        code<\/a><span> | <\/span><a style=\"color: var(--live_text_color);\"\n        href=\"https:\/\/andrewshedov.github.io\/smoothly_appearing_up_button_in_pure_js_+_adaptive_side_menu\/\"\n        target=\"_blank\" rel=\"noopener\">\n        live<\/a>\n    <\/p>\n    <p style=\"margin-top: 9px;\"><strong> Animated and adaptive side menu <\/strong><\/p>\n    <p><a href=\"https:\/\/github.com\/AndrewShedov\/andrewshedov.github.io\/tree\/master\/animated_adaptive_side_menu\"\n        target=\"_blank\" rel=\"noopener\">\n        code<\/a><span> | <\/span><a style=\"color: var(--live_text_color);\"\n        href=\"https:\/\/andrewshedov.github.io\/animated_adaptive_side_menu\/\" target=\"_blank\" rel=\"noopener\">\n        live<\/a>\n    <\/p>\n    <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- \/JS ----<\/strong><\/p>\n    <p id=\"paragraph_11\" class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- React\n        ----<\/strong><\/p>\n    <p style=\"margin-top: 9px;\"><strong> Animated modal window using \u2013 onAnimationEnd <\/strong><\/p>\n    <p><a href=\"https:\/\/github.com\/AndrewShedov\/Animated-modal-in-react\" target=\"_blank\" rel=\"noopener\">\n        code<\/a><span> | <\/span><a style=\"color: var(--live_text_color);\"\n        href=\"https:\/\/animated-modal-in-react.vercel.app\/\" target=\"_blank\" rel=\"noopener\">\n        live<\/a>\n    <\/p>\n    <p style=\"margin-top: 9px;\"><strong> Animated dropdown menu using \u2013 onAnimationEnd <\/strong><\/p>\n    <p><a href=\"https:\/\/github.com\/AndrewShedov\/Animated-dropdown-menu-in-react\" rel=\"noopener\" target=\"_blank\">\n        code<\/a><span> | <\/span><a style=\"color: var(--live_text_color);\"\n        href=\"https:\/\/animated-dropdown-menu-in-react.vercel.app\/\" target=\"_blank\" rel=\"noopener\">\n        live<\/a>\n    <\/p>\n    <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- \/React ----<\/strong><\/p>\n    <p id=\"paragraph_12\" class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- CSS ----<\/strong>\n    <\/p>\n    <p style=\"margin-top: 9px;\"><strong> Animated social media icons that change color and size on hover <\/strong><\/p>\n    <p><a\n        href=\"https:\/\/github.com\/AndrewShedov\/andrewshedov.github.io\/tree\/master\/animated_social_icons_color_changing_on_hover_in_pure_css\"\n        rel=\"noopener\" target=\"_blank\">\n        code<\/a><span> | <\/span><a style=\"color: var(--live_text_color);\"\n        href=\"https:\/\/andrewshedov.github.io\/animated_social_icons_color_changing_on_hover_in_pure_css\/\" target=\"_blank\"\n        rel=\"noopener\">\n        live<\/a>\n    <\/p>\n    <p style=\"margin-top: 9px;\"><strong> Animated Instagram and Facebook icons <\/strong><\/p>\n    <p><a href=\"https:\/\/github.com\/AndrewShedov\/andrewshedov.github.io\/tree\/master\/instagram_and_facebook_icons\"\n        rel=\"noopener\" target=\"_blank\">\n        code<\/a><span> | <\/span><a style=\"color: var(--live_text_color);\"\n        href=\"https:\/\/andrewshedov.github.io\/instagram_and_facebook_icons\/\" target=\"_blank\" rel=\"noopener\">\n        live<\/a>\n    <\/p>\n    <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- \/CSS ----<\/strong><\/p>\n\n    <p id=\"paragraph_13\" class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- CSS | SVG\n        ----<\/strong><\/p>\n    <p style=\"margin-top: 9px;\"><strong>Animated heart with realistic heartbeat and hover effect, made with SVG and pure\n        CSS <\/strong><\/p>\n    <p><a href=\"https:\/\/github.com\/AndrewShedov\/animated-heart--svg-css\" rel=\"noopener\" target=\"_blank\">code<\/a><span> |\n      <\/span><a style=\"color: var(--live_text_color);\" href=\"https:\/\/animated-heart-svg-css.vercel.app\/\" target=\"_blank\"\n        rel=\"noopener\">live<\/a>\n    <\/p>\n    <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- \/CSS | SVG ----<\/strong><\/p>\n\n    <p class=\"u39crdDEQL\"><strong>---- \/Animation\n        ----<\/strong><\/p>\n  <\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"Languages: Rust JS PHP Python Runtime Environment: Node.js Tech Stack: LARS (Leptos, Actix Web, Rust, ScyllaDB) MERN (MongoDB, Express.js, React, Node.js) Frameworks: Leptos React Express.js Electron.js CMS: WordPress Databases: ScyllaDB MongoDB Layout: Pixel Perfect Animation: JS React CSS SVG ---- JS ---- ---- Stack: MERN (MongoDB, Express.js, React, Node.js) ---- ---- Frontend ---- Frontend part [&hellip;]","protected":false},"author":1,"featured_media":739,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2168","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/shedov.top\/ru\/wp-json\/wp\/v2\/pages\/2168","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/shedov.top\/ru\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/shedov.top\/ru\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/shedov.top\/ru\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/shedov.top\/ru\/wp-json\/wp\/v2\/comments?post=2168"}],"version-history":[{"count":247,"href":"https:\/\/shedov.top\/ru\/wp-json\/wp\/v2\/pages\/2168\/revisions"}],"predecessor-version":[{"id":4757,"href":"https:\/\/shedov.top\/ru\/wp-json\/wp\/v2\/pages\/2168\/revisions\/4757"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/shedov.top\/ru\/wp-json\/wp\/v2\/media\/739"}],"wp:attachment":[{"href":"https:\/\/shedov.top\/ru\/wp-json\/wp\/v2\/media?parent=2168"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}